package pers.xx.sbm.service;

import pers.xx.sbm.vo.TotalSampleVo;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface ReportDataService {

    /**
     * 查询角色样本总量
     * @return
     */
    String queryRoleTotalSample();

    /**
     * 查询学段样本总量
     * @return
     */
    Map<String, ArrayList<Integer>> queryXdTotalSample();

    /**
     * 查询不同角色总占比
     * @return
     */
    String queryTotalSamplePercentage();

    /**
     * 查询角色不同学段占比
     * @param role
     * @return
     */
    String queryRoleXdTotalSamplePercentage(String role);

    /**
     * 查询角色不同学段数量
     * @param role
     * @return
     */
    List<TotalSampleVo> queryRoleXdTotalSample(String role);

    /**
     * 查询角色不同区县数量
     * @param role
     * @return
     */
    List<Object> queryRoleAreaTotalSamplePercentage(String role);

    /**
     * 查询总体满意度
     * @return
     */
    String queryTotalSatisfaction();

    /**
     * 查询各区县满意率
     * @return
     */
    Map<String, List<Double>> queryAreaSamplePercentage();

    /**
     * 查询各学段调查结果
     * @return
     */
    String queryXdSatisfaction();

    /**
     * 查询各学段满意率
     * @return
     */
    Map<String, List<Double>> queryXdSamplePercentage();

    /**
     * 根据角色查询不同区县满意度
     * @param role
     * @return
     */
    String queryAreaSatisfactionByRole(String role);

    /**
     * 根据角色查询不同区县满意率
     * @param role
     * @return
     */
    Map<String, List<Double>> queryAreaSatisfactionPercentageByRole(String role);

    /**
     * 根据角色查询各区县满意水平（园长与人大代表特殊情况）
     * @param role
     * @return
     */
    List<Double> querySatisfactionByRole(String role);

    /**
     * 查询各学段查询总体满意度
     * @param xd
     * @return
     */
    String queryTotalSatisfactionByXd(String xd);

    /**
     * 根据学段查询不同区县满意率
     * @param xd
     * @return
     */
    Map<String, List<Double>> queryAreaSatisfactionPercentageByXdAndRole(String xd, String role);

    /**
     * 根据学段、角色查询总体满意度
     * @param xd
     * @return
     */
    String queryTotalSatisfactionByXdAndRole(String xd, String role);

    /**
     * 根据学段、角色查询项目指标
     * @param xd
     * @return
     */
    String queryProjectIndicatorsByXdAndRole(String xd, String role);

    /**
     * 根据学段、角色查询项目各区县指标
     * @param xd
     * @param role
     * @return
     */
    Map<String, ArrayList<Double>> queryIndexSatisfactionByXdAndRole(String xd, String role);
}
